package controleponto.db.dao;

import java.util.List;

import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

import controleponto.db.model.MarcacaoPonto;
import controleponto.db.model.TipoMarcacao;

public class TipoMarcacaoDAO extends EntityDAO implements IEntityDAO<TipoMarcacao> {

	@Override
	public void Adiciona(TipoMarcacao item) {
		AdicionaDAO(item);
	}

	@Override
	public void Atualiza(TipoMarcacao item) {
		AtuallizaDAO(item);
	}

	@Override
	public void Remove(TipoMarcacao item) {
		RemoveDAO(item);
	}

	@Override
	public List<TipoMarcacao> ListaTodos() {
		CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
		CriteriaQuery<TipoMarcacao> cq = cb.createQuery(TipoMarcacao.class);
		Root<TipoMarcacao> root = cq.from(TipoMarcacao.class);
		cq = cq.select(root);
		TypedQuery<TipoMarcacao> qr = getEntityManager().createQuery(cq);
		return qr.getResultList();
	}

	@Override
	public TipoMarcacao getItem(Object filter) {
		return getEntityManager().find(TipoMarcacao.class, filter);
	}
	
	public List<MarcacaoPonto> getMarcacaoPontos(Object filter) {
		TipoMarcacao item = getEntityManager().find(TipoMarcacao.class, filter);
		
		return item.getMarcacaoPonto();
	}

}
